package ui;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import Work.*;

/*四种修改管理员方法的具体实现*/
public class LibrarianOther1 extends JFrame implements ActionListener {

	JTextField jtf1, jtf2;
	private JButton returnbutton;
	Jdbc db = new Jdbc();

	public void Updatel_name() {
		JPanel jpc = new JPanel();// 默认流式布局
		JPanel jp1 = new JPanel(new GridLayout(2, 2, 0, 10));// 设置新面板
		// 网格布局GridLayout(int rows, int columns, int hgap, int vgap)行数，列数，组件水平间距，垂直间距
		jp1.setBorder(BorderFactory.createTitledBorder("按管理员姓名修改"));
		JLabel jl1 = new JLabel("要修改的管理员编号:");
		jtf1 = new JTextField(10);
		JLabel jl2 = new JLabel("修改后的管理员姓名:");
		jtf2 = new JTextField(10);

		jp1.add(jl1);// 在面板jp1上添加标签jl1
		jp1.add(jtf1);// 在面板jp1上添加输入框
		jp1.add(jl2);
		jp1.add(jtf2);

		jpc.add(jp1);// 把面板jp1加到流式布局上

		add(jpc);// 添加流式布局

		JButton jb1 = new JButton("修改");
		jb1.addActionListener(this);
		jb1.setActionCommand("yes1");
		returnbutton = new JButton("返回");
		returnbutton.addActionListener(this);
		returnbutton.setActionCommand("ret");

		JPanel jp2 = new JPanel();// 新面板，用于放置按钮
		jp2.add(jb1);
		jp2.add(returnbutton);
		add(jp2, BorderLayout.SOUTH);// 把按钮放到窗口最下方

		setTitle("管理员姓名修改界面");
		setSize(280, 150);
		setLocationRelativeTo(null);// 窗口居中
		// 组件为空，或者与此组件关联的图形配置为空，则窗口将位于屏幕的中心。
		setDefaultCloseOperation(EXIT_ON_CLOSE);//
		setVisible(true);

	}

	public void Updatel_number() {
		JPanel jpc = new JPanel();// 默认流式布局
		JPanel jp1 = new JPanel(new GridLayout(2, 2, 0, 10));// 设置新面板
		// 网格布局GridLayout(int rows, int columns, int hgap, int vgap)行数，列数，组件水平间距，垂直间距
		jp1.setBorder(BorderFactory.createTitledBorder("按管理员电话修改"));
		JLabel jl1 = new JLabel("要修改的管理员编号:");
		jtf1 = new JTextField(10);
		JLabel jl2 = new JLabel("管理员电话:");
		jtf2 = new JTextField(10);
		jp1.add(jl1);// 在面板jp1上添加标签jl1
		jp1.add(jtf1);// 在面板jp1上添加输入框
		jp1.add(jl2);
		jp1.add(jtf2);

		jpc.add(jp1);// 把面板jp1加到流式布局上

		add(jpc);// 添加流式布局

		JButton jb1 = new JButton("修改");
		jb1.addActionListener(this);
		jb1.setActionCommand("yes2");// 没看懂
		returnbutton = new JButton("返回");
		returnbutton.addActionListener(this);
		returnbutton.setActionCommand("ret");

		JPanel jp2 = new JPanel();// 新面板，用于放置按钮
		jp2.add(jb1);
		jp2.add(returnbutton);
		add(jp2, BorderLayout.SOUTH);// 把按钮放到窗口最下方

		setTitle("管理员电话修改界面");
		setSize(280, 150);
		setLocationRelativeTo(null);// 窗口居中
		// 组件为空，或者与此组件关联的图形配置为空，则窗口将位于屏幕的中心。
		setDefaultCloseOperation(EXIT_ON_CLOSE);//
		setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		LibrarianOther LibrarianOther = new LibrarianOther();
		LibrarianOther1 LibrarianOther1 = new LibrarianOther1();
		ForeignKey foreignkey = new ForeignKey();
        ChangeLibrarian changelibrarian = new ChangeLibrarian();
        ArrayList<Librarian> librarianlist = changelibrarian.read(db);
		if (e.getActionCommand().equals("yes1")) {
			String text1 = jtf1.getText().trim();
			String text2 = jtf2.getText().trim();
			if (text1.equals("") || text2.equals("")) {
				JOptionPane.showMessageDialog(this, "你还没有输入全部信息");
			}else if (!foreignkey.FindL_ID(librarianlist, text1)) {
				JOptionPane.showMessageDialog(this, "查无此人，请重新输入！");
				LibrarianOther1.Updatel_name();
			} else {
				db.uiupdatelibrarian(db, text1, text2, 1);
				JOptionPane.showMessageDialog(this, " 管理员编号为 " + text1 + "\n管理员信息修改成功");
				this.dispose();
				LibrarianOther.UpdateLibrarianButton();
			}
		} else if (e.getActionCommand().equals("yes2")) {
			String text1 = jtf1.getText().trim();
			String text2 = jtf2.getText().trim();
			if (text1.equals("") || text2.equals("")) {
				JOptionPane.showMessageDialog(this, "你还没有输入全部信息");
			}else if (!foreignkey.FindL_ID(librarianlist, text1)) {
				JOptionPane.showMessageDialog(this, "查无此人，请重新输入！");
				LibrarianOther1.Updatel_number();
			} else {
				db.uiupdatelibrarian(db, text1, text2, 2);
				JOptionPane.showMessageDialog(this, " 管理员编号为 " + text1 + "\n管理员信息修改成功");
				this.dispose();
				LibrarianOther.UpdateLibrarianButton();
			}
		}  else if (e.getActionCommand().equals("ret")) {
			this.dispose();
			LibrarianOther.UpdateLibrarianButton();
		}
	}
}
